package com.micro.ai.gateway.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 认证配置属性（支持从Nacos动态刷新）
 * 
 * 使用 @ConfigurationProperties 方式读取配置，比 @Value 更适合复杂配置
 * 支持自动映射 YAML 列表到 Java List
 * 
 * @author micro-ai
 * @since 0.0.1
 * @version 1.0
 */
@Data
@Component
@RefreshScope
@ConfigurationProperties(prefix = "auth")
public class AuthProperties {

    /**
     * 跳过JWT认证的路径列表（支持从Nacos动态刷新）
     * 
     * Nacos配置示例：
     * auth:
     *   skip-auth-paths:
     *     - /api/auth/login
     *     - /api/auth/register
     *     - /api/auth/refresh
     */
    private List<String> skipAuthPaths = new ArrayList<>();

    /**
     * 初始化默认值
     */
    public AuthProperties() {
        // 默认跳过认证的路径
        skipAuthPaths.add("/api/auth/login");
        skipAuthPaths.add("/api/auth/register");
        skipAuthPaths.add("/api/auth/refresh");
        skipAuthPaths.add("/api/auth/captcha");
        skipAuthPaths.add("/actuator/health");
        skipAuthPaths.add("/actuator/info");
    }
}

